www.gusucode.com > matlab编程NSCT分解 图像融合 各个融合指标评价体系 分解源码程序 > matlab编程NSCT分解 图像融合 各个融合指标评价体系 分解源码程序/NSCT/threshold.m
% ./还是/ %%%%%%%%%%%%%I(new)=I+w*s%%%%%%%%%%%%%%%%%%%%%% function I=threshold(x,y,z,n) %x为多光谱图像,y为SAR图像,n为窗口大小 a(1:n,1:n)=1; [height, width]=size(x); %输入图像是hightxwidth的,且hight>n,width>n x1=double(x); y1=double(y); I=z; %x2=x1; for i=1:height-n+1 for j=1:width-n+1 c1=x1(i:i+(n-1),j:j+(n-1)).*a; %取出I分量中从(i,j)开始的n行n列元素与模板相乘 s1=sum(sum(c1)); %求c1矩阵中各元素之和 meanI=s1/(n*n); %求I分量的局部均值 PCI=x1(i+(n-1)/2,j+(n-1)/2); %取I分量的PC c2=y1(i:i+(n-1),j:j+(n-1)).*a; %取出SAR分量中从(i,j)开始的n行n列元素与模板相乘 s2=sum(sum(c2)); %求c2矩阵中各元素之和 meanS=s2/(n*n); %求SAR分量的局部均值 PCS=y1(i+(n-1)/2,j+(n-1)/2); %取SAR分量的PC %%%%%%%%%%%%%计算公式%%%%%%%%%%% if(PCS>0.3&&PCI<0.5) w=PCI./PCS*meanI./meanS; m=0; else w=0; m=1; end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% I(i+(n-1)/2,j+(n-1)/2)=m*I(i+(n-1)/2,j+(n-1)/2)+w*y(i+(n-1)/2,j+(n-1)/2); %I(new)=m*I+w*s end end